package org.triumphxx.springboot.beansearcher.vo;

import cn.zhxu.bs.bean.DbField;
import cn.zhxu.bs.bean.SearchBean;
import cn.zhxu.bs.operator.EndWith;
import cn.zhxu.bs.operator.Equal;
import cn.zhxu.bs.operator.StartWith;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * @author: wangyp
 * @Date: 2023/7/23
 * @Time: 16:50
 * @Desc: 员工 VO类
 **/
@Data
@SearchBean(
        tables = "staff_base sb, staff_detail sd", //表名
        where   = "sb.id = sd.id", //条件
        autoMapTo = "sb"  // 未被 @DbField 注解的字段都映射到 staff_base 表
)
public class StaffVO {
    /**
     * 员工id
     */
    private String id;
    /**
     * 员工姓名
     */
    @DbField(onlyOn = {EndWith.class})
//    @DbField("sb.name")
    private String name;

    /**
     * 员工性别
     */
    private String gender;

    /**
     * 员工年龄
     */
    private Integer age;

    /**
     * 员工出生日期
     */
    @JsonFormat(pattern ="yyyy-MM-dd")
    private Date birthday;

    /**
     * 员工身份证号码
     */
    @DbField("sb.id_card")
    private String idCard;

    /**
     * 员工籍贯
     */
    @DbField("sb.native_place")
    private String nativePlace;

    /**
     * 员工入职日期
     */
    @DbField("sb.begin_date")
    @JsonFormat(pattern ="yyyy-MM-dd")
    private Date beginDate;

    /**
     * 母亲姓名
     */
    @DbField("sd.m_name")
    private String mName;
    /**
     * 母亲年龄
     */
    @DbField("sd.m_age")
    private Integer mAge;
    /**
     * 母亲生日
     */
    @DbField("sd.m_birthday")
    @JsonFormat(pattern ="yyyy-MM-dd")
    private Date mBirthday;
    /**
     * 母亲身份证号码
     */
    @DbField("sd.m_id_card")
    private String mIdCard;
    /**
     * 母亲职业
     */
    @DbField("sd.m_occupation")
    private String mOccupation;
    /**
     * 母亲手机号码
     */
    @DbField("sd.m_iphone")
    private String mIphone;
    /**
     * 父亲姓名
     */
    @DbField("sd.f_name")
    private String fName;
    /**
     * 父亲年龄
     */
    @DbField("sd.f_age")
    private Integer fAge;
    /**
     * 父亲生日
     */
    @DbField("sd.f_birthday")
    @JsonFormat(pattern ="yyyy-MM-dd")
    private Date fBirthday;
    /**
     * 父亲身份证号
     */
    @DbField("sd.f_id_card")
    private String fIdCard;
    /**
     * 父亲职业
     */
    @DbField("sd.f_occupation")
    private String fOccupation;
    /**
     * 父亲手机号码
     */
    @DbField("sd.f_iphone")
    private String fIphone;
}
